/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dados;

import java.util.GregorianCalendar;
import java.util.ArrayList;

public class ReceitaNormal extends Receita {
    
    private ArrayList<MedicamentoNormal> medicamentos;
    private GregorianCalendar validade;
    
    public ReceitaNormal(){        
        medicamentos = new ArrayList<MedicamentoNormal>();
        validade = new GregorianCalendar();
        validade.set(GregorianCalendar.MONTH, validade.get(GregorianCalendar.MONTH) + 1);
    }
    
    public ReceitaNormal(Medico m, Utente u, String c, GregorianCalendar d,
                int compart,GregorianCalendar val,ArrayList<MedicamentoNormal> meds){
        
        super(m,u,c,d,compart,meds);      
        validade = val;
        medicamentos = new ArrayList<MedicamentoNormal>();
        for(MedicamentoNormal med : meds)
            medicamentos.add(med);
    }
            
    public ReceitaNormal(ReceitaNormal r){
        super(r);                        
        validade = r.getValidade();
        medicamentos = r.getMedicamentos();
    }
   
    public ArrayList<MedicamentoNormal> getMedicamentos() {
        ArrayList<MedicamentoNormal> temp = new ArrayList<MedicamentoNormal>();
        
        for(MedicamentoNormal med : medicamentos)
            temp.add(med.clone());
        
        return temp;
    }
    
    public GregorianCalendar getValidade() {
        return validade;
    }
    
    public void setValidade(GregorianCalendar validade) {
        this.validade = validade;
    }
    
    public void setMedicamentos(ArrayList<MedicamentoNormal> medicamentos) {
        for(MedicamentoNormal med : medicamentos)
            this.medicamentos.add(med.clone());
    }
    
    
     @Override
    public boolean equals(Object o){
        ReceitaNormal r = (ReceitaNormal) o;
        if(this==o) 
            return true;
        if(o==null)
            return false;
        if(this.getClass() != o.getClass())
            return false;
        
        return super.equals(r) && this.getMedicamentos() == r.getMedicamentos() && 
                this.getValidade().equals(r.getValidade()); 
    }
    
    public ReceitaNormal clone(){
        return new ReceitaNormal(this);
    }
    
   
    
}
